package cn.topevery.garden.dal.dao.event;

import cn.topevery.garden.entity.dto.event.SerialNoDTO;
import cn.topevery.garden.entity.po.event.EventInfo;
import cn.topevery.garden.entity.query.EvaluationQuery;
import cn.topevery.garden.entity.query.EventInfoQuery;
import cn.topevery.garden.entity.vo.event.EventInfoVO;
import cn.topevery.garden.framework.base.BaseDao;
import hw.topevery.basis.entity.po.SysUser;
import hw.topevery.framework.db.entity.DataPager;
import hw.topevery.framework.entity.KeyValue;

import java.util.List;
import java.util.Map;

/**
 * 案件表
 *
 * @author code-generate
 * @date 2022-08-23
 */
public interface EventInfoDao extends BaseDao<EventInfo> {


    /**
     * 获取列表
     *
     * @param query
     */
    DataPager<EventInfoVO> listPage(EventInfoQuery query, SysUser user, List<String> deptIds);

    EventInfo getEntityByColumn(String key, String value);

    SerialNoDTO getEvtCode(String year, String month, String table);

    EventInfoVO getEventDetail(EventInfoQuery query);

    DataPager<EventInfoVO> getEvtSearchPage(EventInfoQuery query, SysUser user, List<String> deptIds);

    boolean updateByColumns(String userId, List<KeyValue> setList, List<KeyValue> whereList);

    EventInfoVO getInfoById(Integer id);

    List<Map<String, Object>> getSysClassList(List<String> typeIdList);

    void addShouldFinishTime(Integer selfDefLimit);

    List<Map<String, Object>> eventCount(String dateFormat, String timeSlot);

    List<Map<String, Object>> getEventTaskCount();

    DataPager<Map<String, Object>> getStatisticList(EvaluationQuery query);

    List<Map<String, Object>> getEvtStat(EventInfoQuery query);

    List<Map<String, Object>> getDiseaseStatsByDistrictId(EventInfoQuery query);


}
